﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using EncryptUtil;

namespace Model
{
    public class TipoTrabajador
    {
        private int id;
        private String nombre;

        public int Id
        {
            get { return id; }
            set { id = value; }
        }
        

        public String Nombre
        {
            get { return nombre; }
            set { nombre = value; }
        }

        
    }


    public class Usuario
    {
        private const int keysize = 256;
        private int id;

        public int Id
        {
            get { return id; }
            set { id = value; }
        }
        private String username;

        public String Username
        {
            get { return username; }
            set { username = value; }
        }
        private String password;

        public String Password
        {
            get { return password; }
            set { password = value; }
        }
        private String email;

        public String Email
        {
            get { return email; }
            set { email = value; }
        }

        private Rol rol;

        public Rol Rol
        {
            get { return rol; }
            set { rol = value; }
        }

        public Usuario(String username, String password, String email)
        {
            this.username = username;
            this.password = password;
            this.email = email;
        }

        public Usuario(int id,String username, String password, String email)
        {
            this.id = id;
            this.username = username;
            this.password = password;
            this.email = email;
        }

        public Usuario(String user, String pass)
        {
            this.username = user;
            this.password = pass;
        }

        public void hashPassword()
        {
            this.password = StringCipher.Encrypt(this.password);
        }

        public void unHashPassword()
        {
            this.password = StringCipher.Decrypt(this.password);
        }
    }

    public class Rol
    {
        private int id;

        public int Id
        {
            get { return id; }
            set { id = value; }
        }
        private String nombre;

        public String Nombre
        {
            get { return nombre; }
            set { nombre = value; }
        }
        private String descripcion;

        public String Descripcion
        {
            get { return descripcion; }
            set { descripcion = value; }
        }

    }

    public class Trabajador
    {
        private int id;
        private String nombre;
        private String apPaterno;
        private String apMaterno;
        private String dni;
        private String estado;

        public int Id
        {
            get { return id; }
            set { id = value; }
        }

        public String Nombre
        {
            get { return nombre; }
            set { nombre= value; }
        }

        public String ApPaterno
        {
            get { return apPaterno; }
            set { apPaterno = value; }
        }

        public String ApMaterno
        {
            get { return apMaterno; }
            set { apMaterno = value; }
        }

        public String Dni
        {
            get { return dni; }
            set { dni = value; }
        }
        public String Estado
        {
            get { return estado; }
            set { estado = value; }
        }
    }


    public class Contrato
    {
        private int id;

        public int Id
        {
            get { return id; }
            set { id = value; }
        }
        private int idTrabajador;

        public int IdTrabajador
        {
            get { return idTrabajador; }
            set { idTrabajador = value; }
        }
        private String modalidad;

        public String Modalidad
        {
            get { return modalidad; }
            set { modalidad = value; }
        }
        private double sueldoBruto;

        public double SueldoBruto
        {
            get { return sueldoBruto; }
            set { sueldoBruto = value; }
        }
        private String ocupacion;

        public String Ocupacion
        {
            get { return ocupacion; }
            set { ocupacion = value; }
        }
        private DateTime fechaInicio;

        public DateTime FechaInicio
        {
            get { return fechaInicio; }
            set { fechaInicio = value; }
        }
        private DateTime fechaFin;

        public DateTime FechaFin
        {
            get { return fechaFin; }
            set { fechaFin = value; }
        }
        private String estado;

        public String Estado
        {
            get { return estado; }
            set { estado = value; }
        }

        
    }
}
